package br.com.saeng2D.util;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.ActionMap;
import javax.swing.GroupLayout;
import javax.swing.InputMap;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import br.com.saeng2D.objeto.forca.ForcaMomento;

public class Resultados extends JFrame {
	private static final long serialVersionUID = 1L;
	
	private JButton buttonGerarRelatorio;
	private JButton buttonCancelar;
	private JRadioButton radioButtonGerarPDF;
	private JRadioButton radioButtonGerarJPEG;
	private JRadioButton radioButtonIncluirAreaCliente;
	private JRadioButton radioButtonIncluirAreaDiagrama;
	private JRadioButton radioButtonIncluirEquacoes;
	private JRadioButton radioButtonIncluirResultados;
	private JRadioButton radioButtonIncluirTodos;
	private JTextArea textAreaResultados;
	private JLabel labelRelatorio;
	private JLabel labelGerarRelatorio;
	private JLabel labelResultado;
	private JPanel painel;
	private JScrollPane scrollTextResultados;
	
	private String equacao1;
	private String equacao2;
	private String equacao3;
	
	private Boolean impAreaCliente ;
	private Boolean impAreaDiagrama;
	private Boolean impEqs ;
	private Boolean impRels;
	
	
	private ArrayList<String> valorVariaveis;
	
		
	public Resultados(String equacao1,String equacao2,String equacao3,ArrayList<String> resultados){
		super("RESULTADO");
		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		this.equacao1 = "Fx = "+equacao2;
		this.equacao2 = "Fy = "+equacao3;
		this.equacao3 = "Mz = "+equacao1;
		this.valorVariaveis = resultados;
		inicializar();
		
		//this.setSize(380,250);
		this.setBounds(100, 100, 550, 360);
		this.setVisible(true);
		this.setResizable(false);
	}
	
	private void inicializar(){
		
		radioButtonGerarPDF = new JRadioButton("Gerar em PDF",true);
		radioButtonGerarJPEG = new JRadioButton("Gerar em JPEG");
		radioButtonIncluirAreaCliente = new JRadioButton("Área Cliente");
		radioButtonIncluirAreaDiagrama = new JRadioButton("Área de Diagramas");
		radioButtonIncluirEquacoes = new JRadioButton("Equações");
		radioButtonIncluirResultados = new JRadioButton("Resultados");
		radioButtonIncluirTodos = new JRadioButton("Todos");
		textAreaResultados = new JTextArea();
		labelRelatorio = new JLabel("RELATÓRIO");
		labelGerarRelatorio = new JLabel("FORMATO RELATÓRIO");
		labelResultado = new JLabel("RESULTADOS");
		
		textAreaResultados.setText(equacao1 +"\n\n"+equacao2+"\n\n"+equacao3+"\n\n"+valorVariaveis.get(0)+"\n"+valorVariaveis.get(1)+"\n"+valorVariaveis.get(2));
				
		buttonGerarRelatorio = new JButton("OK");
		buttonGerarRelatorio.setToolTipText("Gerar relatório");
		buttonCancelar = new JButton("CANCELAR");
		buttonCancelar.setToolTipText("Gerar relatório");
		scrollTextResultados = new JScrollPane();
		painel = new JPanel();
		scrollTextResultados.setViewportView(textAreaResultados);
		this.add(painel);
		
		
		GroupLayout frameLayout = new GroupLayout(painel);
		painel.setLayout(frameLayout);
		
		frameLayout.setHorizontalGroup(frameLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
				.addGroup(frameLayout.createSequentialGroup()
						.addGroup(frameLayout.createParallelGroup(GroupLayout.Alignment.LEADING).addGap(5)
								.addGroup(frameLayout.createSequentialGroup().addGap(10)
										.addComponent(labelResultado))
								.addGroup(frameLayout.createSequentialGroup().addGap(10)
										.addComponent(scrollTextResultados,520,520,520).addGap(10))
								.addGroup(frameLayout.createSequentialGroup().addGap(10)
										.addComponent(labelRelatorio))
								.addGroup(frameLayout.createSequentialGroup().addGap(10)
										.addComponent(radioButtonIncluirAreaCliente).addGap(5)
										.addComponent(radioButtonIncluirAreaDiagrama).addGap(5)
										.addComponent(radioButtonIncluirEquacoes).addGap(5)
										.addComponent(radioButtonIncluirResultados).addGap(5)
										.addComponent(radioButtonIncluirTodos).addGap(5))
								.addGroup(frameLayout.createSequentialGroup().addGap(10)
										.addComponent(labelGerarRelatorio))
										.addGap(30)
								.addGroup(frameLayout.createSequentialGroup().addGap(10)
										.addComponent(radioButtonGerarPDF).addGap(5)
										.addComponent(radioButtonGerarJPEG))
								.addGroup(frameLayout.createSequentialGroup().addGap(160)
										.addComponent(buttonGerarRelatorio,100,100,100).addGap(5)
										.addComponent(buttonCancelar,100,100,100))
								)));
		frameLayout.setVerticalGroup(frameLayout.createParallelGroup(GroupLayout.Alignment.LEADING)
				.addGroup(frameLayout.createSequentialGroup().addGap(8)
						.addGroup(frameLayout.createParallelGroup().addGap(5)
								.addComponent(labelResultado))
						.addGroup(frameLayout.createParallelGroup().addGap(10)
								.addComponent(scrollTextResultados,162,162,162)).addGap(8)
						.addGroup(frameLayout.createParallelGroup().addGap(5)
								.addComponent(labelRelatorio))
						.addGroup(frameLayout.createParallelGroup().addGap(5)
								.addComponent(radioButtonIncluirAreaCliente).addGap(5)
								.addComponent(radioButtonIncluirAreaDiagrama).addGap(5)
								.addComponent(radioButtonIncluirEquacoes).addGap(5)
								.addComponent(radioButtonIncluirResultados).addGap(5)
								.addComponent(radioButtonIncluirTodos).addGap(5))
								.addGap(10)
						.addGroup(frameLayout.createParallelGroup().addGap(5)
								.addComponent(labelGerarRelatorio))
						.addGroup(frameLayout.createParallelGroup().addGap(5)	
								.addComponent(radioButtonGerarPDF).addGap(5)
								.addComponent(radioButtonGerarJPEG).addGap(5)).addGap(10)
						.addGroup(frameLayout.createParallelGroup()
								.addComponent(buttonGerarRelatorio).addGap(5)
								.addComponent(buttonCancelar).addGap(5))
						));
		
		manipuladoresEvento();
	}
	private void manipuladoresEvento() {
		InputMap inputMap = getRootPane().getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
		ActionMap actionMap = getRootPane().getActionMap();
			
		buttonGerarRelatorio.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				opcoesRelatorio();
				new Relatorio(equacao1,equacao2,equacao3,valorVariaveis.get(0),valorVariaveis.get(1),valorVariaveis.get(2),impAreaCliente,impAreaDiagrama,impEqs,impRels);
			}
		});
		buttonCancelar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				dispose();
			}
		});
	}
	public void opcoesRelatorio() {		
		if(radioButtonIncluirTodos.isSelected()){
			radioButtonIncluirAreaCliente.setSelected(false);
			radioButtonIncluirAreaDiagrama.setSelected(false);
			radioButtonIncluirEquacoes.setSelected(false);
			radioButtonIncluirResultados.setSelected(false);
			impAreaCliente = Boolean.parseBoolean("true");
			impAreaDiagrama = Boolean.parseBoolean("true");
			impEqs = Boolean.parseBoolean("true");
			impRels = Boolean.parseBoolean("true");
		}else{
			radioButtonIncluirTodos.setSelected(false);
			if(radioButtonIncluirAreaCliente.isSelected()){	
				impAreaCliente = Boolean.parseBoolean("true");
			}
			if(radioButtonIncluirAreaDiagrama.isSelected()){
				impAreaDiagrama = Boolean.parseBoolean("true");
			}
			if(radioButtonIncluirEquacoes.isSelected()){
				impEqs = Boolean.parseBoolean("true");
			}
			if(radioButtonIncluirResultados.isSelected()){
				impRels = Boolean.parseBoolean("true");
			}
		}
		
	}

}
